1. Technical Field
This invention relates generally to techniques for identifying what parts have been installed in a computer system, and more specifically to automated methods of determining the location and identification of physically interchangeable computer components.
2. Description of Related Art
In some computer systems, there can be many part numbers and/or Engineering Changes (EC) used for a single component. This is often particularly true with respect to memory components. It is also common practice to allocate card slots for special system feature cards that are not required for normal system operation, and the actual cards installed varies from machine to machine. The system must be able to accurately identify exactly what parts are installed for several reasons.
For instance, there may be several different memory card part numbers which can be installed in a given card location depending on the system configuration. These different card part numbers may all use the same interface chip part number. Such a multiple-use chip has unique register initialization requirements for each card part number in order to accommodate for the different memory array technologies, the clock speed, card densities, and the system that it is operating in. The same card may be used in multiple systems. One system may have single card operation. Another system may use two of the memory cards working as a pair and the two cards must be compatible. This concept of the multiple-use chip programmability feature is described more fully in pending application Ser. No. 206,757 entitled Smart Memory Card Architecture and Interface filed Jun. 15, 1988 and commonly owned by the assignee of the present application. Without proper compatibility, the card would not operate correctly. There is also an exposure (especially when dynamic RAM arrays are involved) that a part supplied with invalid initialization data could run out of specification without being detected by the system. The chip operates differently in each of these environments and the initialization data controls these operations.
There is also the possibility that there are different voltages and/or current requirements for each of the different configurations of the system based on the number and types of cards installed. It is therefore crucial to the power supply design to know what current limit is considered excessive for each of the configurations so that the voltage/current limits can be set appropriately for safety considerations and to prevent device burnout. On the other hand if the current limit is set too low for the configuration, power up may not complete without over-current sensors shutting down the power supply. This information may be needed prior to applying power to the parts in question. IBM Technical Disclosure Bulletin Vol. 29, No. 2 (July 1986) at p.806 describes a prior technique for avoiding overcurrent by measuring the current flow through sense resistors on each card. The present invention operates on a simpler premise and provides additional benefits and information at the same time.
The next point to consider is that the part information needed to identify the correct configuration data may be available the majority of the time to the bring-up controls. However, if a part is replaced there may be no guarantee that the update is made to the system configuration data or that the entry is done correctly. U.S. Pat. No. 4,556,953 discloses a system for identifying which of several possible interface cards is present, and provides for self-configuration of the system to accommodate the interchanging of circuit cards. However, several different circuits are required all of which use the system address/data bus, thereby creating priority problems as well as identifying the circuit cards after normal system power has been applied. These disadvantages have been avoided in the present invention.
Another factor to consider is the number of circuits as well as the number of input/output signals which are required in order to properly identify the type of circuit component installed as well as its location in the system.